import type { Slot, VNode, VNodeChild } from "vue";

// Node
export type VueNode =
  | Slot
  | VNodeChild
  | VNode
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  | ((...props: any[]) => Slot)
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  | ((...props: any[]) => VNode)
  | VNode[]
  | string
  | null
  | undefined;

export type WithFalse<T> = T | false;

export type CustomRender = VueNode;

export type CustomRenderFalse = WithFalse<CustomRender>;
